﻿using Common.Util.Validation;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Authentication.Model.ViewModel.Account
{
    public class RegisterUserViewModel : GenerateViewMode, IViewModel
    {
        [Required(ErrorMessage = "Email is required.")]
        [RegularExpression(RegexValidation.Email, ErrorMessage = "Email is invalidate")]
        [Display(Name = "Email:")]
        public string Email { get; set; }

        [Required(ErrorMessage = "First name is required.")]
        [Display(Name = "First name:")]
        public string FirstName { get; set; }

        [Display(Name = "Last name:")]
        public string LastName { get; set; }

        [Display(Name = "Mobile:")]
        public string Mobile { get; set; }

        [Required(ErrorMessage = "User name is required.")]
        [Display(Name = "User name:")]
        public string UserName { get; set; }

        [Required(ErrorMessage = "Password is required.")]
        [RegularExpression(RegexValidation.Password, ErrorMessage = "Password is invalidate")]
        [Display(Name = "Password:")]
        public string Password { get; set; }

        [Required(ErrorMessage = "Confirm password is required.")]
        [Display(Name = "Confirm password:")]
        [Compare("Password", ErrorMessage = "Confirmation password is invalidate")]
        public string ConfirmPassword { get; set; }

        [Required(ErrorMessage = "Verification code is required.")]
        [Display(Name = "Verification code:")]
        public string VerificationCode { get; set; }

        public string VerificationImageUrl { get; set; }

        [Display(Name = "Profile image:")]
        public string ImageUrl { get; set; }
    }
}
